Author: bleny Date: 2010-06-17 11:00:26 +0200 (Thu, 17 Jun 2010) New Revision: 81 Url: http://nuiton.org/repositories/revision/diswork/81 Log: bugfix dans la concurrence avec test Added: trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonConcurrencyTest.java Modified: trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/ActivityStrategy.java trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/DisworkConfig.java trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/WorkersManager.java trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonTest.java Modified: trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/ActivityStrategy.java =================================================================== --- trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/ActivityStrategy.java 2010-06-17 08:08:19 UTC (rev 80) +++ trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/ActivityStrategy.java 2010-06-17 09:00:26 UTC (rev 81) @@ -1,3 +1,27 @@ +/* + * #%L + * Diswork daemon + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ package org.nuiton.diswork.daemon; import java.lang.management.ManagementFactory; Modified: trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/DisworkConfig.java =================================================================== --- trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/DisworkConfig.java 2010-06-17 08:08:19 UTC (rev 80) +++ trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/DisworkConfig.java 2010-06-17 09:00:26 UTC (rev 81) @@ -142,6 +142,10 @@ return getOptionAsInt("diswork.workers_number"); } + public void setNumberOfWorkers(Integer number) { + setOption("diswork.workers_number", number.toString()); + } + public String getActivityStrategy() { return getOption("diswork.activity_strategy"); } Modified: trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/WorkersManager.java =================================================================== --- trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/WorkersManager.java 2010-06-17 08:08:19 UTC (rev 80) +++ trunk/diswork-daemon/src/main/java/org/nuiton/diswork/daemon/WorkersManager.java 2010-06-17 09:00:26 UTC (rev 81) @@ -68,6 +68,9 @@ RUNNING_MOVE.put(DisworkDaemon.TODO, DisworkDaemon.TODO_RUNNING); RUNNING_MOVE.put(DisworkDaemon.FAILED_1, DisworkDaemon.FAILED_1_RUNNING); RUNNING_MOVE.put(DisworkDaemon.FAILED_2, DisworkDaemon.FAILED_2_RUNNING); + RUNNING_MOVE.put(DisworkDaemon.TODO_RUNNING, DisworkDaemon.TODO_RUNNING); + RUNNING_MOVE.put(DisworkDaemon.FAILED_1_RUNNING, DisworkDaemon.FAILED_1_RUNNING); + RUNNING_MOVE.put(DisworkDaemon.FAILED_2_RUNNING, DisworkDaemon.FAILED_2_RUNNING); FAILED_MOVE.put(DisworkDaemon.TODO, DisworkDaemon.FAILED_1); FAILED_MOVE.put(DisworkDaemon.FAILED_1, DisworkDaemon.FAILED_2); @@ -254,12 +257,14 @@ DisworkDaemon.FAILED_1_RUNNING, DisworkDaemon.TODO_RUNNING }; + + // FIXME 20100617 bleny stop loops when found for (String path : runningJobsDirs) { String oldName = getFistJobName(path); if (oldName != null) { Long linkAge = System.currentTimeMillis() - Long.parseLong(oldName); - if (linkAge <= MAX_JOB_RUNNING_TIME) { + if (linkAge > MAX_JOB_RUNNING_TIME) { log.info("taking old job (age = " + linkAge + ")"); jobLinkDir = path; jobLinkName = oldName; @@ -351,14 +356,6 @@ public WorkersManager(DisworkFileSystem fileSystem, DisworkConfig config) { this.fileSystem = fileSystem; this.config = config; - - log.info("will start " + config.getNumberOfWorkers() + " workers"); - for (int i = 1 ; i <= config.getNumberOfWorkers() ; i++) { - Worker worker = new Worker(); - worker.manager = this; - worker.start(); - workers.add(worker); - } String initialStrategy = config.getActivityStrategy(); if ( "none".equals(initialStrategy)) { @@ -373,6 +370,14 @@ log.error("wrong config directive " + initialStrategy); activeNoActivityStrategy(); } + + log.info("will start " + config.getNumberOfWorkers() + " workers"); + for (int i = 1 ; i <= config.getNumberOfWorkers() ; i++) { + Worker worker = new Worker(); + worker.manager = this; + worker.start(); + workers.add(worker); + } } Added: trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonConcurrencyTest.java =================================================================== --- trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonConcurrencyTest.java (rev 0) +++ trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonConcurrencyTest.java 2010-06-17 09:00:26 UTC (rev 81) @@ -0,0 +1,21 @@ +package org.nuiton.diswork.daemon; + +import java.io.InputStream; + +import org.junit.Before; + +public class DisworkDaemonConcurrencyTest extends DisworkDaemonTest { + + @Before + public void setUp() throws Exception { + DisworkConfig config = DisworkConfig.newConfig(); + port += 1; + config.setUsedPort(port); + config.setNumberOfWorkers(32); + daemon = new DisworkDaemon(config); + InputStream application = ClassLoader.getSystemResourceAsStream("fake-app-1.0.zip"); + daemon.submitApplication("fake-app", "1.0", application); + } + + +} Modified: trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonTest.java =================================================================== --- trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonTest.java 2010-06-17 08:08:19 UTC (rev 80) +++ trunk/diswork-daemon/src/test/java/org/nuiton/diswork/daemon/DisworkDaemonTest.java 2010-06-17 09:00:26 UTC (rev 81) @@ -143,7 +143,7 @@ Map<String, Integer> stats = daemon.getGlobalStats(); // deamon should read 3 stats : 1 OS, 1 architecture and the number // of processors - assertEquals(3, stats); + assertEquals(3, stats.size()); } }